区块链上节点如何验证新区块是否合法?

参考:1、精通比特币(80):节点是如何校验新区块的? | BtcCFO.com ,作者:飞哥

           2、巴比特专栏 | 比特币现金添加的Checkpoint到底是什么,有什么影响?,作者:tan90d 

比特币中每个节全点将独立校验网络中的新区块。当新区块在网络中传播时,每一个节点在将它转发到其节点之前,会进行一系列的测试去验证它。这确保了只有有效的区块会在网络中传播。

具体校验包括:

1、区块的数据结构语法上有效

2、验证工作量证明,区块头的哈希值小于目标难度(确认包含足够的工作量证明)

3、区块时间戳早于验证时刻未来两个小时(允许时间错误)

4、验证区块大小在长度限制之内,即看区块大小是否在设定范围之内。(BTC是数据区块体不能大于1M,隔离验证区块不能大于3M;BCH是区块不能大于32M;BSV现在是不能大于128M)

5、第一个交易(且只有第一个)是coinbase交易,即一个区块,矿工只能给自己奖励一次

6、验证区块内的交易并确保它们的有效性:验证MerkleRoot是否是由区块体中的交易得到的,即重构区块Merkle树得到的树根,看是否和区块头中的hashMerkleRoot值相等

 

为什么独立校验是去中心化共识的重要组成部分

为什么矿工不为他们自己记录一笔交易去获得数以千计的比特币?这是因为每一个节点根据相同的规则对区块进行校验。一个无效的coinbase交易将使整个区块无效,这将导致该区块被拒绝,因此,该交易就不会成为总账的一部分。矿工们必须构建一个完美的区块,基于所有节点共享的规则,并且根据正确工作量证明的解决方案进行挖矿,他们要花费大量的电力挖矿才能做到这一点。如果他们作弊,所有的电力和努力都会浪费。

 

独立校验的作用

独立校验还确保了诚实的矿工生成的区块可以被纳入到区块链中,从而获得奖励。行为不诚实的矿工所产生的区块将被拒绝,这不但使他们失 去了奖励,而且也浪费了本来可以去寻找工作量证明解的机会,因而导致其电费亏损。

 

源码见比特币核心客户端的CheckBlock函数和CheckBlockHead函数

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
区块链中,有几种不同类型的节点,每种类型的节点都有不同的作用。以下是常见的节点类型及其作用: 1. 全节点(Full Node):全节点区块链网络中最重要的节点类型。它们存储并维护完整的区块链数据副本,包括所有的交易记录和区块。全节点验证交易的有效性,并参与区块链网络的共识过程,确保网络的安全性和一致性。 2. 矿工节点(Miner Node):矿工节点负责创建区块,将交易打包到区块中,并通过解决复杂的数学问题来竞争获得区块奖励。矿工节点参与共识算法(如Proof of Work或Proof of Stake),确保区块的生成和链的延续。 3. 轻节点(Light Node):轻节点是一种不存储完整区块链数据的节点。它们通过与全节点或其他轻节点进行通信,获取所需的区块链信息,并验证交易的有效性。轻节点通常用于移动设备或资源受限的环境中,以便更高效地访问区块链网络。 4. 验证节点(Validator Node):验证节点负责验证交易的有效性,并参与共识过程。它们可能采用不同的共识算法,如Proof of Stake或Delegated Proof of Stake。验证节点的目标是确保网络的安全性和一致性,同时获得相应的奖励。 5. 网关节点(Gateway Node):网关节点充当区块链网络和外部网络(如互联网)之间的桥梁。它们负责处理外部网络与区块链网络之间的数据转换和传递,实现不同网络之间的互联互通。 这些节点类型的组合和功能可能因不同的区块链平台和应用而有所不同,但它们共同构成了一个去中心化的区块链网络,确保其安全性、可靠性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值